package com.itzhoun.fix;

/**
 * 修复懒加载第三个方法
 * @author 周楠
 * @Date 2023/01/12/上午 9:45
 */
public class FixLazySingletonThirdMethod {

    /**
     * 前面说过懒加载第二次修复的出现的问题，对象执行顺序无法保证，这里加入了关键字volatile保证对象实例化过程的顺序性
     * 优点： 到此就保证了线程安全。
     */

    private static volatile FixLazySingletonFirstMethod fixLazySingletonFirstMethod = null;

    private FixLazySingletonThirdMethod() {
    }

    public static synchronized FixLazySingletonFirstMethod getInstance(){
        if (fixLazySingletonFirstMethod == null){
            synchronized (fixLazySingletonFirstMethod){
                if (fixLazySingletonFirstMethod == null){
                    fixLazySingletonFirstMethod = new FixLazySingletonFirstMethod();
                }
            }
        }
        return fixLazySingletonFirstMethod;
    }


}
